<template>
    <view>
        <!-- 自定义搜索组件 -->
        <view class="search-box">
            <my-search @click="gotoSearch"></my-search>
        </view>
        
        <!-- 轮播图区域 -->
        <swiper :indicator-dots="true" :autoplay="true" :interval="3000" :duration="1000">
            <swiper-item v-for="(item, index) in swiperList" :key="index">
                <navigator class="swiper-item" :url="'/subpkg/goods_detail/goods_detail?goods_id='+item.goods_id">
                    <image :src="item.image_src" mode=""></image>
                </navigator>
            </swiper-item>
        </swiper>
        
        <!-- nav分类导航区域 -->
        <view class="nav-list">
            <view class="nav-item" v-for="(item, index) in navList" :key="index" @click="navClickHandler(item)">
                <image class="nav-img" :src="item.image_src" mode=""></image>
            </view>
        </view>
        
        <!-- floor楼层区域 -->
        <view class="floor-list">
            <!-- 楼层item项 -->
            <view class="floor-item" v-for="(item,index) in floorList" :key="index">
                <!-- 楼层标题 -->
                <image class="floor-title" :src="item.floor_title.image_src" mode=""></image>
               
                <!-- 楼层的图片区域 -->
                <view class="floor-img-box">
                    
                    <!-- 左侧一个大盒子 -->
                    <navigator :url="item.product_list[0].url" class="left-img-box">
                        <image :src="item.product_list[0].image_src" mode="widthFix" :style="{width:item.product_list[0].image_width+'rpx'}"></image>
                    </navigator>
                    
                    <!-- 右侧四个小盒子 -->
                    <view class="right-img-box" >
                       <navigator :url='item2.url' class="right-img-item" v-for="(item2,index2) in item.product_list" :key="index2" v-if="index2!==0">
                           <image :src="item2.image_src" mode="widthFix" :style="{width:item2.image_width+'rpx'}"></image>
                       </navigator>
                    </view>
                </view>
            </view>
        </view>
    </view>
</template>

<script>
import badgeMix from '@/mixins/tabbar-badge.js'

export default {
    mixins: [badgeMix],
    
    data() {
        return {
            swiperList: [], //轮播图数据列表
            navList: [], //分类导航数据列表
            floorList: [],//楼层的数据列表
        };
    },
    methods: {
        // 获取轮播图数据方法
        async getSwiperList() {
            try {
                const { data: res } = await uni.$http.get('/api/public/v1/home/swiperdata');
                this.swiperList = res.message;
                uni.$showMsg('数据请求成功!')
            } catch (e) {
                // 请求失败
                uni.$showMsg()
            }
        },
       
       //获取分类导航数据方法
        async getNavList() {
            try{
                const { data: res } = await uni.$http.get('/api/public/v1/home/catitems');
                this.navList = res.message
            }catch(e){
                uni.$showMsg()
            }
        },
   
        // 导航栏跳转事件
        navClickHandler(item) {
            if(item.name === '分类') {
                uni.switchTab({
                    url: '/pages/cate/cate'
                })
            }
        },
   
        // 获取楼层数据的方法
        async getFloorList() {
            try{
                const {data:res} = await uni.$http.get('/api/public/v1/home/floordata') 
                
                // 对数据进行处理
                res.message.forEach(floor => {
                     floor.product_list.forEach(prod => {
                         prod.url = '/subpkg/goods_list/goods_list?' + prod.navigator_url.split('?')[1]
                     })
                })
                this.floorList = res.message
            }catch(e){
                console.log(e)
                uni.$showMsg()
            }
        },
        gotoSearch() {
            uni.navigateTo({
                url: '/subpkg/search/search'
            })
        }
    },
    onLoad() {
        // 调用方法获取轮播图数据
        this.getSwiperList();
        this.getNavList();
        this.getFloorList();
    }
};
</script>

<style lang="scss">
swiper {
    height: 330rpx;
    .swiper-item,
    image {
        width: 100%;
    }
}

.nav-list {
    display: flex;
    justify-content: space-around;
    margin: 15rpx 0;
    
    .nav-img {
        width: 128rpx;
        height: 140rpx;
    }
}

    .floor-img-box {
        display: flex;
        padding-left: 10rpx;
    }

    .floor-title {
        width: 100%;
        height: 60rpx;
    }
    
    .right-img-box {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-around;
    }
    
    .search-box {
        position: sticky;
        top: 0;
        z-index: 999;
    }
</style>
